昨天因為電影看太晚,所以沒有完全補上,
我先發今天的文章,再補上昨天的部分。
我先拿前面的mapreduce做同樣的例子,來計算每種花色的數量。
話不多說,直接執行Pig的指令,進到Pig的Grunt。
首先先把要運算的檔案先載入,Pig內建的分隔符號為Tab,我這邊指定為' '。
Pig在執行的時候,會自己產生一個Job,可以透過Hue來進行查閱。
剛才在載入資料的時候沒有給他schema,如果要給的話,
可以透過AS (kinds,number),要指定型態的話,就加上kinds:[型態]
型態的列表可以看這邊
http://pig.apache.org/docs/r0.10.0/basic.html#Data+Types+and+More
設定完之後,使用DESCRIBE可以查詢您的資料集的內容
先來看看,載入的資料內容長什麼樣子。
因為我要做分群,所以先按照種類來分,執行以下程式碼:
C = GROUP cards BY knids;
DUMP C;
可以看到,所有一樣的knids,都分到同一個群組裡面,
變成(diamonds,{被分到diamonds的資料,如(diamonds,8),(diamods,7)...}
接著將C的來源進行群組的Count
D = FOREACH C GENERATE group,COUNT(cards);
DUMP D;
可以發現每個花色有幾張牌,但是有兩個問題還沒解,分別是種類的大小寫以及非花色的數目。